package org.example.top40;

public class main37 {
    //删除排序链表中的重复元素 II
    //输入：head = [1,2,3,3,4,4,5]
    //输出：[1,2,5]
    //思路：前驱节点pre确保它的next和nextnext不为null
    //对于多次重复的用x记录当前pre.next，与更新后的next比较
    public static void main(String[] args) {
        ListNode head = builder();
        ListNode node=deleteRepeateNode(head);
        System.out.println(node.val+"->"+node.next.val);
    }

    private static ListNode deleteRepeateNode(ListNode head) {
        ListNode dummy = new ListNode(-1);
        dummy.next=head;
        ListNode pre=dummy;
        while (pre.next!=null&&pre.next.next!=null){
            if(pre.next.val==pre.next.next.val){
                int x=pre.next.val;
                while(pre.next!=null&&pre.next.val==x){
                    pre.next=pre.next.next;
                }
            }else {
                pre=pre.next;
            }
        }
        return dummy.next;
    }

    private static ListNode builder(){
        ListNode head = new ListNode(1);
        ListNode node1 = new ListNode(1);
        ListNode node2 = new ListNode(1);
        ListNode node3 = new ListNode(2);
        ListNode node4 = new ListNode(3);
        head.next=node1;
        node1.next=node2;
        node2.next=node3;
        node3.next=node4;
        return head;
    }
}
